home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1996 #14
/
Monster Media No. 14 (April 1996) (Monster Media, Inc.).ISO
/
pcboard
/
msgtag11.zip
/
MORE.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1996-01-30
|
6KB
|
442 lines
;------------------------------------------------------------------------------
; .ss.
; `²²'
; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
; .sS²°$$$²²°"' d²°'
; .$$² .$$'
; $$$.,d$$'
; `²S$$S²'
;------------------------------------------------------------------------------
; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
;------------------------------------------------------------------------------
; PPE 3.1O (Encryption type I) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Boolean BOOLEAN001
Boolean BOOLEAN002
Boolean BOOLEAN003
Boolean BOOLEAN004
Boolean BOOLEAN005
String STRING001
String STRING002
String STRING003
String STRING004
String STRING005
String STRING006
String STRING007
String STRING008
String STRING009
String STRING010
String STRING011
String STRING012
String STRING013
String STRING014
Byte BYTE001
Byte BYTE002
Byte BYTE003
Byte BYTE004
Byte BYTE005
Byte BYTE006
BigStr BIGSTR001
BigStr BIGSTR002
;------------------------------------------------------------------------------
If (AnsiOn()) Goto LABEL001
DispFile PPEPath() + "TAGOLD", 4
End
:LABEL001
STRING004 = ReadLine(PCBDat(), 204)
STRING004 = FileInf(STRING004, 6) + ":" + FileInf(STRING004, 7)
STRING012 = STRING004 + "msgtag.use"
STRING011 = STRING004 + "mtg" + String(CurConf()) + ".lst"
STRING005 = STRING004 + "userpl.dat"
If (Exist(STRING012)) Goto LABEL002
DispFile PPEPath() + "tagold", 4 + 1
End
Goto LABEL003
:LABEL002
If (FileInf(STRING011, 4) > 0) Then
FOpen 1, STRING011, 0, 0
FRead 1, BIGSTR001, FileInf(STRING011, 4)
FClose 1
Endif
:LABEL003
STRING006 = Chr(8)
STRING007 = Chr(127)
STRING008 = Chr(13)
STRING009 = Chr(27)
BYTE005 = 1
STRING010 = "00000000000000000000000000000000000000000000000000"
ClrEol
Gosub LABEL010
:LABEL004
If (BOOLEAN001) Goto LABEL008
STRING002 = Inkey()
If (STRING002 <> "") Then
If ((BYTE001 == 0) && (((STRING002 == " ") || (Left(STRING002, 2) == "UP")) || (Left(STRING002, 4) == "DOWN"))) Then
BYTE002 = GetY()
While (1) Do
STRING004 = ScrText(1, BYTE005, 5, 0)
If (InStr(STRING004, "Msg#") > 0) Then
Inc BYTE005
Break
Continue
Endif
If (S2I(Mid(STRING004, 2, 4), 10) > 0) Then
Break
Continue
Endif
Inc BYTE005
If (BYTE005 > 25) Break
EndWhile
BYTE003 = BYTE005
BYTE004 = BYTE005
If (Left(STRING002, 2) == "UP") Then
BOOLEAN003 = 1
BYTE003 = GetY() - 1
ElseIf ((STRING002 == " ") || (Left(STRING002, 4) == "DOWN")) Then
STRING002 = "DOWN"
BOOLEAN003 = 0
Endif
AnsiPos 1, BYTE002
Print STRING008
ClrEol
Print STRING009 + "[s"
DispFile PPEPath() + "TAGBAR", 1 + 4
Print STRING008
Gosub LABEL011
If (STRING013 <> "") Then
While (1) Do
STRING002 = Inkey()
If (STRING002 == STRING009) Break
If (STRING002 == STRING008) Then
Gosub LABEL015
Gosub LABEL014
If (BOOLEAN003) Then
Inc BYTE003
STRING002 = "UP"
Goto LABEL005
Endif
Dec BYTE003
STRING002 = "DOWN"
:LABEL005
Gosub LABEL011
Continue
Endif
If (((STRING002 == " ") || (Left(STRING002, 4) == "DOWN")) || (Left(STRING002, 2) == "UP")) Then
If (STRING002 == " ") STRING002 = "DOWN"
If ((STRING003 == "DOWN") && (Left(STRING002, 2) == "UP")) Then
BYTE003 = BYTE003 - 2
Goto LABEL006
Endif
If ((STRING003 == "UP") && (Left(STRING002, 4) == "DOWN")) Then
BYTE003 = BYTE003 + 2
Endif
:LABEL006
Gosub LABEL015
Gosub LABEL011
If (BOOLEAN002) Then
Gosub LABEL009
Gosub LABEL010
BOOLEAN002 = 0
Goto LABEL007
Endif
Continue
Endif
Delay 3
EndWhile
Gosub LABEL015
Gosub LABEL009
Else
Gosub LABEL009
Endif
Gosub LABEL010
Goto LABEL007
Else
Select Case (STRING002)
Case STRING006, STRING007
If (BYTE001 > 0) Then
Print STRING006 + " "
BYTE001 = BYTE001 - 1
STRING001 = Left(STRING001, BYTE001)
Else
Goto LABEL007
Endif
Case STRING008
BOOLEAN001 = 1
Case 1, " "
Goto LABEL007
Case &&, "?", "H"
SaveScrn
Newline
DispFile PPEPath() + "TAGHLP", 1 + 4
Newline
Wait
RestScrn
Goto LABEL007
Case " ", 80
STRING001 = STRING001 + STRING002
BYTE001 = BYTE001 + 1
Endif
End Select
Print STRING002
Else
Delay 3
Endif
:LABEL007
Goto LABEL004
:LABEL008
STRING001 = RTrim(STRING001, " ")
Print STRING008
ClrEol
KbdStuff STRING001 + STRING008
If (STRING002 == STRING008) Cls
If ((InStr(Upper(STRING001), "N") || InStr(Upper(STRING001), "NS")) || InStr(Upper(STRING001), "A")) Then
If (Exist(STRING005)) Then
GetUser
FOpen 7, STRING005, 0, 0
FGet 7, STRING004
U_PageLen = ToInt(STRING004)
FClose 7
PutUser
Delete STRING005
Endif
If (FileInf(STRING011, 4) == 0) Delete STRING011
Delete STRING012
Endif
If ((STRING011 <> "") && (Len(BIGSTR001) > 0)) Then
FOpen 1, STRING011, 1, 0
FWrite 1, BIGSTR001, Len(BIGSTR001)
FClose 1
Endif
End
:LABEL009
Print STRING009 + "[u"
ClrEol
Return
:LABEL010
DispFile PPEPath() + "TAGNEW", 4
DefColor
Return
:LABEL011
If (Left(STRING002, 4) == "DOWN") Then
If (BYTE003 < BYTE002) Then
BOOLEAN003 = 0
STRING003 = "DOWN"
STRING013 = ScrText(1, BYTE003, 8, 0)
Gosub LABEL014
Inc BYTE003
Return
Goto LABEL012
Endif
BOOLEAN002 = 1
Return
Endif
:LABEL012
If (Left(STRING002, 2) == "UP") Then
If (BYTE003 > BYTE004 - 1) Then
STRING003 = "UP"
BOOLEAN003 = 1
STRING013 = ScrText(1, BYTE003, 8, 0)
Gosub LABEL014
Dec BYTE003
Return
Goto LABEL013
Endif
BOOLEAN002 = 1
Return
Endif
:LABEL013
STRING013 = ""
Return
:LABEL014
If (STRING002 == STRING008) Then
If (BOOLEAN003) Then
Print STRING009 + "[u" + STRING009 + "[" + String(BYTE002 - BYTE003 - 1) + "A"
BYTE006 = BYTE003 + 1
Else
Print STRING009 + "[u" + STRING009 + "[" + String(BYTE002 - BYTE003 + 1) + "A"
BYTE006 = BYTE003 - 1
Endif
If (Mid(STRING010, BYTE006, 1) == "1") Then
STRING013 = Mid(STRING013, 1, 7) + " "
STRING010 = Mid(STRING010, 1, BYTE006 - 1) + "0" + Mid(STRING010, BYTE006 + 1, 50 - BYTE006)
Gosub LABEL016
Else
Gosub LABEL017
If (BOOLEAN004) Return
Gosub LABEL019
If (BOOLEAN005) Return
STRING013 = Mid(STRING013, 1, 7) + "*"
STRING010 = Mid(STRING010, 1, BYTE006 - 1) + "1" + Mid(STRING010, BYTE006 + 1, 50 - BYTE006)
Endif
Else
Print STRING009 + "[u" + STRING009 + "[" + String(BYTE002 - BYTE003) + "A"
Color 112
Endif
STRING014 = ScrText(1, BYTE003, 8, 1)
Print STRING013 + STRING008
Return
:LABEL015
Print STRING014 + STRING008
Return
:LABEL016
STRING004 = RTrim(Mid(STRING013, 2, 7), " ")
BIGSTR002 = Mid(BIGSTR001, 1, InStr(BIGSTR001, STRING004) - 1)
If (BIGSTR002 == "") Then
BYTE006 = InStr(BIGSTR001, ";") + 1
If (BYTE006 >= Len(BIGSTR001)) Then
BIGSTR001 = ""
Else
BIGSTR002 = BIGSTR002 + Mid(BIGSTR001, BYTE006, Len(BIGSTR001) - BYTE006 + 1)
Endif
Else
BYTE005 = Len(BIGSTR002) + Len(STRING004) + 2
If (BYTE005 < Len(BIGSTR001)) BIGSTR002 = BIGSTR002 + Mid(BIGSTR001, BYTE005, Len(BIGSTR001) - InStr(BIGSTR001, STRING004) + 1)
Endif
BIGSTR001 = BIGSTR002
Return
:LABEL017
BOOLEAN004 = 0
If (InStr(BIGSTR001, RTrim(Mid(STRING013, 2, 6), " ")) <> 0) Then
If (BOOLEAN003) Then
STRING004 = ScrText(1, BYTE003 + 1, 78, 1)
Goto LABEL018
Endif
STRING004 = ScrText(1, BYTE003 - 1, 78, 1)
:LABEL018
ClrEol
Print "@X0CDuplicate Message Number...@X0FRequest ignored@X07"
Delay 54
Print STRING008
ClrEol
Print STRING004
BOOLEAN004 = 1
Endif
Return
:LABEL019
BOOLEAN005 = 0
If (Len(BIGSTR001) + Len(Trim(Mid(STRING013, 2, 6), " ")) < 2047) Then
BIGSTR001 = BIGSTR001 + Trim(Mid(STRING013, 2, 6), " ") + ";"
Else
If (BOOLEAN003) Then
STRING004 = ScrText(1, BYTE003 + 1, 78, 1)
Else
STRING004 = ScrText(1, BYTE003 - 1, 78, 1)
Endif
Color 7
ClrEol
Print "@X0CMaximum of @X0F20@X0C Tagged Messages Reached @X0B- @X0FMessage not Tagged"
Delay 54
Print STRING008
ClrEol
Print STRING004
BOOLEAN005 = 1
Endif
Return
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 3 End
; 1 Cls
; 8 ClrEol
; 1 Wait
; 2 Color
; 79 Goto
; 67 Let
; 18 Print
; 49 If
; 5 DispFile
; 3 FOpen
; 3 FClose
; 1 FGet
; 1 GetUser
; 1 PutUser
; 1 DefColor
; 3 Delete
; 18 Gosub
; 14 Return
; 4 Delay
; 4 Inc
; 2 Dec
; 2 Newline
; 1 KbdStuff
; 1 AnsiPos
; 1 SaveScrn
; 1 RestScrn
; 1 FRead
; 1 FWrite
;
;
; ■ Functions used :
;
; 61 +
; 18 -
; 30 ==
; 4 <>
; 5 <
; 8 >
; 2 >=
; 41 !
; 6 &&
; 10 ||
; 11 Len(
; 4 Upper()
; 15 Mid()
; 11 Left()
; 4 Chr()
; 8 InStr()
; 3 RTrim()
; 2 Trim()
; 2 Inkey()
; 4 String()
; 1 CurConf()
; 1 PCBDat()
; 5 PPEPath()
; 1 ReadLine()
; 2 Exist()
; 1 S2I()
; 1 AnsiOn()
; 2 GetY()
; 5 FileInf()
; 8 ScrText()
; 1 ToInt()
;
;------------------------------------------------------------------------------
;
; Analysis flags : Wd
;
; W - Write user ■ 5
; Program writes a user record. Although this may be normal for a
; User Editor, it may also be a way to modify an account level.
; ■ Search for : PUTUSER
;
; d - Access PCBOARD.DAT ■ 2
; Program gets the full pathname to PCBOARD.DAT, this may be usefull
; for many PPE so they can find various informations on the system
; (system paths, max number of lines in messages, ...) but it may also
; be a way to gather vital informations.
; ■ Search for : PCBDAT()
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 0 For/Next
; 2 While/EndWhile
; 31 If/Then or If/Then/Else
; 1 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------